package co.yixiang.yshop.module.tables.dal.dataobject.reservation;

import lombok.*;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO;

/**
 * 预约记录 DO
 *
 * @author yshop
 */
@TableName("reservations")
@KeySequence("reservations_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReservationDO extends BaseDO {

    /**
     * 预约记录唯一标识符
     */
    @TableId
    private Integer id;
    /**
     * 预约的餐桌ID
     */
    private Integer tableId;
    /**
     * 预约人姓名
     */
    private String customerName;
    /**
     * 预约人联系电话
     */
    private String contactNumber;
    /**
     * 预约时间
     */
    private LocalDateTime reservationTime;
    /**
     * 用餐人数
     */
    private Short numberOfGuests;
    /**
     * 预约状态（1:已确认, 2:已取消, 3:待确认）
     *
     * 枚举 {@link TODO reservations_reservation_status 对应的类}
     */
    private Byte reservationStatus;
    /**
     * 支付状态（1:已支付, 2:未支付, 3:部分支付）
     *
     * 枚举 {@link TODO reservations_payment_status 对应的类}
     */
    private Byte paymentStatus;
    /**
     * 预约备注信息（如特殊要求、优惠券使用等）
     */
    private String notes;

}
